<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>码匠论坛后台管理系统</title>
    <link rel="stylesheet" th:href="@{/static/layui/css/layui.css}" media="all"/>
    <link rel="stylesheet" th:href="@{/static/fontawesome/css/fontawesome.min.css}" media="all"/>
    <script th:src="@{/static/common/jquery.min.js}"></script>
    <script th:src="@{/static/layui/layui.js}"></script>
    <script th:src="@{/static/js/echarts.min.js}"></script>
    <script src="https://code.highcharts.com.cn/jquery/jquery-1.8.3.min.js"></script>
    <script src="https://code.highcharts.com.cn/highstock/highstock.js"></script>
    <script src="https://code.highcharts.com.cn/highcharts/modules/exporting.js"></script>
    <script src="https://code.highcharts.com.cn/highcharts-plugins/highcharts-zh_CN.js"></script>
    <style type="text/css">
        .highcharts-credits {
            display: none;
        }
    </style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <!-- 登录历史记录 -->
    <div>
        <div style="margin: 10px 0 10px 20px;font-size: 20px;font-weight: 600">登入历史记录</div>
        <div style="margin-left: 10px;border-right: 1px solid #fff;">
            <table class="layui-hide" id="ip-info"></table>
        </div>
    </div>
    <!-- 在线人数 -->
    <div>
        <div style="margin: 30px 0 10px 20px;font-size: 20px;font-weight: 600">码匠论坛实时在线人数</div>
<!--        <div id="container" style="min-width:200px;height:100%"></div>-->
        <div id="container" style="width:50%;height:100%"></div>
    </div>

    <div>
        <!-- 注册人数统计 -->
        <div style="margin: 10px 0 10px 20px;font-size: 20px;font-weight: 600">码匠论坛注册人数</div>
<!--        <div id="container-register" style="min-width: 310px; height: 100%; margin: 0 auto"></div>-->
        <div id="container-register" style="width:50%;height: 100%; margin: 0 auto"></div>
    </div>
</div>
<script th:inline="javascript">
    let onlineUser = 0;
    layui.use(['element', 'table'], function () {
        let element = layui.element;
        let table = layui.table;

        table.render({
            elem: '#ip-info'
            , url: '/getAdminLoginInfo'
            , cellMinWidth: 80
            , cols: [
                [
                    {field: 'ip', width: 200, align: 'center', title: '登入 IP 地址'}
                    // , {field: 'info', width: 210, align: 'center', title: 'IP 详细信息'}
                    , {field: 'time', width: 200, align: 'center', title: '登入时间'}
                ]
            ]
            ,page: true
        });


    });

    //注册人数
    Highcharts.chart('container-register', {
        chart: {
            type: 'column'
        },
        title: {
            text: '2019年7月-12月，码匠论坛的的注册人数'
        },
        subtitle: {
            text: '码匠论坛2019年下半年注册人数统计'
        },
        xAxis: {
            type: 'category'
        },
        yAxis: {
            title: {
                text: '注册人数'
            }
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            series: {
                borderWidth: 0,
                dataLabels: {
                    enabled: true,
                    format: '{point.y} 人'
                }
            }
        },
        tooltip: {
            headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
            pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y}</b>人<br/>'
        },
        series: [{
            name: '注册人数',
            colorByPoint: true,
            data: [{
                name: '2019 年 7 月',
                y: 1,
                drilldown: '2019 年 7 月'
            }, {
                name: '2019 年 8 月',
                y: 5,
                drilldown: '2019 年 8 月'
            }, {
                name: '2019 年 9 月',
                y: 2,
                drilldown: '2019 年 9 月'
            }, {
                name: '2019 年 10 月',
                y: 9,
                drilldown: '2019 年 10 月'
            }, {
                name: '2019 年 11 月',
                y: 15,
                drilldown: '2019 年 11 月'
            }, {
                name: '2019 年 12 月',
                y: 30,
                drilldown: '2019 年 12 月'
            }]
        }],
        drilldown: {
            series: [{
                name: 'Microsoft Internet Explorer',
                id: 'Microsoft Internet Explorer',
                data: [
                    [
                        'v11.0',
                        24.13
                    ],
                    [
                        'v8.0',
                        17.2
                    ],
                    [
                        'v9.0',
                        8.11
                    ],
                    [
                        'v10.0',
                        5.33
                    ],
                    [
                        'v6.0',
                        1.06
                    ],
                    [
                        'v7.0',
                        0.5
                    ]
                ]
            }, {
                name: 'Chrome',
                id: 'Chrome',
                data: [
                    [
                        'v40.0',
                        5
                    ],
                    [
                        'v41.0',
                        4.32
                    ],
                    [
                        'v42.0',
                        3.68
                    ],
                    [
                        'v39.0',
                        2.96
                    ],
                    [
                        'v36.0',
                        2.53
                    ],
                    [
                        'v43.0',
                        1.45
                    ],
                    [
                        'v31.0',
                        1.24
                    ],
                    [
                        'v35.0',
                        0.85
                    ],
                    [
                        'v38.0',
                        0.6
                    ],
                    [
                        'v32.0',
                        0.55
                    ],
                    [
                        'v37.0',
                        0.38
                    ],
                    [
                        'v33.0',
                        0.19
                    ],
                    [
                        'v34.0',
                        0.14
                    ],
                    [
                        'v30.0',
                        0.14
                    ]
                ]
            }, {
                name: 'Firefox',
                id: 'Firefox',
                data: [
                    [
                        'v35',
                        2.76
                    ],
                    [
                        'v36',
                        2.32
                    ],
                    [
                        'v37',
                        2.31
                    ],
                    [
                        'v34',
                        1.27
                    ],
                    [
                        'v38',
                        1.02
                    ],
                    [
                        'v31',
                        0.33
                    ],
                    [
                        'v33',
                        0.22
                    ],
                    [
                        'v32',
                        0.15
                    ]
                ]
            }, {
                name: 'Safari',
                id: 'Safari',
                data: [
                    [
                        'v8.0',
                        2.56
                    ],
                    [
                        'v7.1',
                        0.77
                    ],
                    [
                        'v5.1',
                        0.42
                    ],
                    [
                        'v5.0',
                        0.3
                    ],
                    [
                        'v6.1',
                        0.29
                    ],
                    [
                        'v7.0',
                        0.26
                    ],
                    [
                        'v6.2',
                        0.17
                    ]
                ]
            }, {
                name: 'Opera',
                id: 'Opera',
                data: [
                    [
                        'v12.x',
                        0.34
                    ],
                    [
                        'v28',
                        0.24
                    ],
                    [
                        'v27',
                        0.17
                    ],
                    [
                        'v29',
                        0.16
                    ]
                ]
            }]
        }
    });

    //全局变量
    let chart = null;
    $(document).ready(function () {
        //获取管理员登录信息token
        Highcharts.setOptions({
            global: {
                useUTC: false
            }
        });
        chart = Highcharts.chart('container', {
            chart: {
                type: 'spline',
                marginRight: 100,
                marginLeft: 100,
                events: {
                    load: requestData // 图表加载完毕后执行的回调函数
                }
            },
            title: {
                text: ' '
            },
            xAxis: {
                type: 'datetime',
                tickPixelInterval: 150,
            },
            yAxis: {
                title: {
                    text: '在线人数',
                    // margin: 80
                }
            },
            tooltip: {
                formatter: function () {
                    return '<b>' + this.series.name + '</b><br/>' +
                        Highcharts.dateFormat('%Y-%m-%d %H:%M', this.x) + '<br/>' +
                        Highcharts.numberFormat(this.y, 0);
                }
            },
            series: [{
                name: '码匠在线人数',
                data: []
            }]
        });
    });

    function requestData() {
        $.ajax({
            url: '/online',
            success: function (point) {
                let series = chart.series[0],
                    shift = series.data.length > 10; // 当数据点数量超过 20 个，则指定删除第一个点
                // 新增点操作
                //具体的参数详见：https://api.hcharts.cn/highcharts#Series.addPoint
                let x = (new Date()).getTime();
                y = point.data;
                chart.series[0].addPoint([x, y], true, shift);

                // 2秒后继续调用本函数
                setTimeout(requestData, 2000);
            },
            cache: false
        });
    }

</script>
</body>
</html>